﻿/*
功能: 根据角色id得到这个角色的所有级别
*/
function getRoleLevels(obj) {
    var data = new Object();

    var url = "/User/GetRoleLevels";
    var roleId = jQuery(obj).val();
    data.roleId = roleId;
    jQuery.ajax({
        url: url,
        data: data,
        async:false,
        type: "POST",
        dataType: "json",
        success: function (data) {
            //alert(data);
            //把属于该角色的级别放到一个select下拉列表里
            jQuery("#UserLevelId").empty();
            if (data.errors.length > 0) {
                var str = "";
                for (i in data.errors) {
                    str += data.errors[i];
                }
                alert("[系统提示:]\n\t" + str);
            }
            else {
                jQuery("#UserLevelId").append("<option value=''> -请选择- </option>");
                for (i = 0; i < data.DataList.length; i++) {
                    jQuery("#UserLevelId").append("<option value='" + data.DataList[i].Id + "'>" + data.DataList[i].LevelName + " </option>");
                }
            }
        },
        error: function () {
            alert("[系统提示:]\n\t获得角色级别时出错!");
        }
    });
}
/*
功能: 收集表单数据,封装在一个json对象中,
最后返回一个json对象
*/
function collectData() {
    var data = new Object();
    data.Id = jQuery("#Id").val();
    data.UserName = jQuery("#UserName").val();
    data.UserPassword = jQuery("#UserPassword").val();
    data.UserRoleId = jQuery("#UserRole").val();
    data.UserLevelId = jQuery("#UserLevelId").val();
    data.UserStateId = jQuery("#UserState").val();
    return data;
}
/*
功能: 添加或修改一个角色
根据隐藏域  <input type="hidden" id="Id"/>
的值来确定是修改还是添加
*/
function SaveUser() {
    var isAdd;
    if (jQuery("#Id").val() > 0) {
        //alert(">0");
        isAdd = false;
    }
    else {
        //alert("<0");
        isAdd = true;
    }
    var url = "";
    if (isAdd) {
        url = "/User/AddUser";
    }
    else {
        url = "/User/EditUser";
    }
    var data = collectData();
    jQuery.ajax({
        url: url,
        type: "POST",
        data: data,
        dataType: "json",
        cache: false,
        success: function (result) {
            setId(-100);
            if (result.isSuccess > 0) {
                alert("[系统提示:]\n\t" + "操作成功!");
            }
            else {
                alert("[系统提示:]\n\t" + "操作失败!");
            }
            reset(); //重置表单
           window.location = "/User/ViewManageUser/1/10";
        },
        error: function () {
            alert("[系统提示:]\n\t" + "操作失败!");
        }
    });
}
/*
功能:修改隐藏域 <input type="hidden" id="Id"/>
的value属性值
*/
function setId(v) {
    jQuery("#Id").val(v);
}
/*
功能:根据角色id,得到一个角色实体,
将角色的属性值放到对应的表单中;
*/
function bindData(id) {
    jQuery.ajax({
        url: "/User/GetUser/" + id,
        type: "post",
        dataType: "json",
        success: function (data) {
            jQuery("#Id").val(data.Id);
            jQuery("#CancelEditBtn").removeAttr("disabled");
            jQuery("#UserName").val(data.UserName);
            jQuery("#UserRole").children().each(
                function () {
                    if (this.value == data.UserRoleId) {
                        jQuery(this).attr("selected", "selected");
                    }
                });
            var obj = jQuery("#UserRole");
            getRoleLevels(obj);
            jQuery("#UserLevelId").children().each(
                function () {
                    if (this.value == data.UserLevelId) {
                        jQuery(this).attr("selected", "selected");
                    }
                });
        }
    });
}
/*
功能: 当点击取消按钮时,所做的一系列操作
*/
function reset() {
    //step 1 修改隐藏域的值为负数
    setId(-100);
    //step 2 表单数据清空
    jQuery("#Id").val("");
    jQuery("#UserName").val("");
    jQuery("#UserPassword").val("");
    jQuery("#UserRole").val("");
    jQuery("#UserLevelId").val("");
    jQuery("#UserStateId").val("");
    //step 3 把取消按钮禁用
    jQuery("#CancelEditBtn").attr("disabled", "disabled");
}

/*
功能:设置用户的状态(正常/锁定/删除)
*/
function setState(userId, stateId) {
    var data = new Object();
    data.Id = userId;
    data.UserStateId = stateId;
    jQuery.ajax({
        url: "/User/SetState",
        data: data,
        type: "post",
        dataType: "json",
        async: false,
        success: function (data) {
            if (data.isSuccess > 0) {
                alert("[系统提示:]\n\t修改用户状态成功");
                window.location = "/User/ViewManageUser/1/10";
            }
            else {
                alert("[系统提示:]\n\t修改用户状态失败");
            }
        },
        error: function () {
            alert("[系统提示:]\n\t修改用户状态失败");
        }
    });
}

function operateUsers(opCode) {
    var data = new Object();
    switch (opCode) {
        case "1":
            data.stateId = 1;//启用
            break;
        case "2":
            data.stateId = 2;//锁定
            break;
        case "3":
            data.stateId = 3;//删除
            break;
    }
    var objs = document.getElementsByName('userId');
    var ids = "";
    for (var i = 0; i < objs.length;i++ ) {
        if (objs[i].checked)
            ids+=objs[i].value+",";
    }
    data.ids = ids;
    var url = "/User/OperateUserState";
    jQuery.ajax({
        url: url,
        data: data,
        type: "get",
        dataType: "json",
        success: function (data) {
            if (data.errors.length > 0) {
                alert(data.errors);
            }
            else {
                alert("操作成功");
                window.location = "/User/ViewManageUser/1/10";
            }
        },
        error: function () {
            alert("操作失败");
        }
    });
}